package com.quick.develop.flowable.framework.enums.definition;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * BPM 任务分配规则的类型枚举，
 *
 * @author
 */
@Getter
@AllArgsConstructor
public enum BpmTaskAssignRuleTypeEnum {

    /**
     * 处理人类型，候选、处理人
     */
    ASSIGNEE(1,"处理"),
    CANDIDATE(2,"候选"),
    PRESET_VALUE(3,"预设值"),
    DISTRIBUTE(4,"分发"),
    COUNTERSIGN_DEPARTMENT(5,"会签部门"),
    COUNTERSIGN_DEPARTMENT2(55,"会签部门分管领导"),

    /**
     * 处理人分配规则
     */
    ROLE(10, "角色"),

    DEPT_MEMBER(20, "部门的成员"),
    DEPT_LEADERS(24,"部门负责人"),
    DEPT_LEADER(21, "负责人"),
    POST(22, "岗位"),

    USER(30, "用户"),

    USER_GROUP(40, "用户组"),

    SCRIPT(50, "自定义脚本"),

    INITIATOR(60, "流程发起者"),
    DRAFT_MAN(80,"拟稿人"),

    FROM_SOURCE(90,"表单来源"),

    FLOW_THROUGH_NODES_ASSIGNEE(100,"经过节点处理人"),

    /**
     * 负责人
     */
    DEPET_LEADER(6,"部门负责人"),
    DEPARTMENT_LEADER(7,"科长"),
    ASSIST_LEADER(9,"协管领导"),
    CHARGE_LEADER(14,"分管领导"),
    GENERAL_MANAGER(5,"总经理"),
    PROGRAM_COORDINATOR(8,"程序协调员"),

    FILE_COORDINATOR(100,"文件协调员"),
    CONFIDENTIALITY(110,"部门保密员"),
    DOCUMENT_COORDINATOR(120,"部门文档协调员"),
    CLERICAL(111,"文书"),
    REPORT_CLERICAL(112,"报告文书")
    ;

    /**
     * 类型
     */
    private final Integer type;
    /**
     * 描述
     */
    private final String desc;

}
